package com.gd.iot.energy.service.datamanage;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gd.iot.energy.po.datamanage.ReportNbWaterDataPO;
import com.gd.iot.energy.pojo.common.vo.PageVO;
import com.gd.iot.energy.pojo.common.vo.ChartVO;
import com.gd.iot.energy.pojo.datamanage.vo.MeterFrozenPageVO;
import com.gd.iot.energy.pojo.datamanage.vo.MeterHistoryPageVO;
import com.gd.iot.energy.pojo.datamanage.vo.MeterRealtimePageVO;

import java.util.List;

public interface ReportNbWaterDataService extends IService<ReportNbWaterDataPO> {
    /**
     * NB表历史
     * @param customerSerialnumber
     * @param areaName
     * @param archivesAddress
     * @param imei
     * @param beginDate
     * @param endDate
     * @param areaId
     * @param pageSize
     * @param pageNum
     * @param orderColumn
     * @param orderType
     * @return
     */
    PageVO<MeterHistoryPageVO> getNBMeterHistoryPageVO(String customerSerialnumber, String areaName,
                                                       String archivesAddress, String imei,
                                                       String beginDate, String endDate, Integer areaId,
                                                       Integer pageSize, Integer pageNum,
                                                       String orderColumn, String orderType);

    /**
     * NB表历史数据图表
     * @param archivesAddress
     * @param imei
     * @param beginDate
     * @param endDate
     * @param areaId
     * @return
     */
    List<ChartVO> getNBMeterHistoryChartVO(String archivesAddress, String imei,
                                           String beginDate, String endDate, Integer areaId);

    /**
     * 表实时数据分页
     * @param customerSerialnumber
     * @param areaName
     * @param archivesAddress
     * @param imei
     * @param areaId
     * @param pageSize
     * @param pageNum
     * @param orderColumn
     * @param orderType
     * @return
     */
    PageVO<MeterRealtimePageVO> getNBMeterRealTimePageVO(String customerSerialnumber, String areaName, String archivesAddress, String imei, Integer areaId, Integer pageSize, Integer pageNum, String orderColumn, String orderType);

    /**
     * NB冻结数据分页
     * @param customerSerialnumber
     * @param areaName
     * @param archivesAddress
     * @param imei
     * @param beginDate
     * @param endDate
     * @param areaId
     * @param pageSize
     * @param pageNum
     * @param orderColumn
     * @param orderType
     * @return
     */
    PageVO<MeterFrozenPageVO> getNBMeterFrozenPageVO(String customerSerialnumber, String areaName, String archivesAddress, String imei, String beginDate, String endDate, Integer areaId, Integer pageSize, Integer pageNum, String orderColumn, String orderType);

    /**
     * NB冻结数据图表
     * @param archivesAddress
     * @param imei
     * @param beginDate
     * @param endDate
     * @param areaId
     * @return
     */
    List<ChartVO> getNBMeterFrozenChartVO(String archivesAddress, String imei, String beginDate, String endDate, Integer areaId);
}
